“Cloud” computing often refers to the provision of computing resources as a service, usually by a number of computer servers that are networked together at location(s) that are remote from the location from which the services are requested. A cloud datacenter refers to a physical arrangement of servers that make up a cloud (e.g., racks, rooms, etc.). In some cases, a particular portion of a datacenter may be implemented as a “cluster” or “grid.”
A cloud or cluster server or portions of its resources may be allocated physically or logically according to workload requirements. As an example, computing jobs that involve very large data sets and/or numerous computational tasks (such as big data analytics) may be distributed among multiple physical servers in a cluster and/or among multiple processes on the same server.
A scheduling system refers to computer software (e.g., middleware) used to allocate computing jobs among server resources in a cloud, cluster, or grid. For example, some scheduling systems designate one server as the “master” node of a cluster that includes a number of “slave” nodes, where the master node schedules tasks to be processed by its cluster in response to periodic “heartbeat” signals it receives from the slave nodes in its cluster.